<?php
namespace Admin\Controller;

use Think\Controller;

class ProductController extends RightController
{
    // 加载初始化内容页,并检索
    public function index()
    {
        //判断分页时搜索条件
        if (I("get.p")) {
            $where = session("QG_SEARCH_WHERE_product");
            $this->assign("params", session("QG_SEARCH_PARAMS_product"));
            $where = empty($where) ? "1" : $where;
            $pageSize = session("QG_SEARCH_SIZE_product");
        } else {
            //清除session存储
            session("QG_SEARCH_WHERE_product", null);
            session("QG_SEARCH_PARAMS_product", null);
            session("QG_SEARCH_SIZE_product", null);
            $pageSize = I("post.pageSize");

            $where = "1";
        }

        // POST数据提交，重新组合检索条件
        if (IS_POST) {
            unset($_GET["p"]);
            $where = $this->searchCondition();
        }

        // 检索未删除
        $where .= " AND t.isDelete = '2'";
		
		// 分页输入
        if(empty($pageSize)){
            $pageSize = 10;
        }

        // 总条数
        $count = M('product')
            ->alias("t")
            ->where($where)
            ->count();
        $page = new \Admin\Model\Page($count, $pageSize);
        $show = $page->show();

        // 进行分页数据查询
        $list = M('product')
            ->alias("t")
            ->field("t.*,c.catename catename")
            ->join("left join category c on t.categoryId=c.id")
            ->where($where)
            ->order('t.id DESC')
            ->limit($page->firstRow . ',' . $page->listRows)->select();
			
		// 统计
        $sum = M('product')
            ->alias("t")
            ->field("count(1) as countNum")
            ->where($where)
            ->order('t.id DESC')
            ->find();

        // 渲染查询条件到session
        session("QG_SEARCH_WHERE_product", $where);
		session("QG_SEARCH_PARAMS_product", I("post."));
		session("QG_SEARCH_SIZE_product", $pageSize);
		
		// 输出数据
        $this->assign("params", I("post."));
        $this->assign('list', $list);
        $this->assign('sum', $sum);
		$this->assign('lists', array(
            "page" => getDropdownList("pageSize" , '' , false),
            "isUp" => getDropdownList("isUp")
        ));
        $this->assign('page', $show);
        $this->display();
    }

    // 搜索条件
    public function searchCondition()
    {
        $where = "1";

        // 名称
        if (I('post.name')) {
            // 精确
            if (I('post.nameCondition') == 1) {
                $where .= " AND t.name='" . I("post.name") . "'";
            } else {
                $where .= " AND t.name LIKE '%" . I("post.name") . "%'";
            }
        }

        // 价格
        if (I('post.priceStart') || I('post.priceEnd')) {
            // 开始
            if(I('post.priceStart')){
                $where .= " AND t.price>='" . I("post.priceStart") . "'";
            }
            // 结束
            if(I('post.priceEnd')){
                $where .= " AND t.price<='" . I("post.priceEnd") . "'";
            }
        }

        // 是否上架
        if (I('post.isup')) {
            $where .= " AND t.isUp='" . I("post.isup") . "'";
        }

        // 创建时间
        if (I('post.createtimeStart') || I('post.createtimeEnd')) {
            // 起始日期
            if(I('post.createtimeStart')){
                $where .= " AND t.createTime>='" . I("post.createtimeStart") . "'";
            }
            // 结束日期
            if(I('post.createtimeEnd')){
                $where .= " AND t.createTime<='" . I("post.createtimeEnd") . " 23:59:59'";
            }
        }

        // 更新时间
        if (I('post.updatetimeStart') || I('post.updatetimeEnd')) {
            // 起始日期
            if(I('post.updatetimeStart')){
                $where .= " AND t.updateTime>='" . I("post.updatetimeStart") . "'";
            }
            // 结束日期
            if(I('post.updatetimeEnd')){
                $where .= " AND t.updateTime<='" . I("post.updatetimeEnd") . " 23:59:59'";
            }
        }

        return $where;
    }

    // 添加会员
    public function add()
    {
        if (IS_POST) {
            // 数据
            $data = array();

            // 名称
            $data['name'] = I('post.name');

            //商城分类
            $data['categoryId'] = I('post.category');

            // 简介
            $data['introduce'] = I('post.introduce');

            // 缩略图
            $data['img'] = I('post.img');

            // 图集
            $data['imgs'] = implode(",",I('post.imgs'));

            // 详情页
            $data['html'] = $_POST["html"];

            // 价格
            $data['price'] = I('post.price');
            if (0 >= $data['price']) $this->ajaxError("价格不能小于等于0！");

            // 是否上架
            $data['isUp'] = "2";

            // 是否删除
            $data['isDelete'] = '2';

            // 创建时间
            $data['createTime'] = now_datetime();

            // 更新时间
            $data['updateTime'] = now_datetime();

            //创建数据
            $result = M('product')->add($data);

            if ($result) {
				$this->ajaxSuccess("添加成功！");
            } else {
				$this->ajaxError("添加失败！");
            }
        } else {
            //取出分类
            $cates = M('category')->field("id,catename")->select();
            $arr = array();
            if (!empty($cates)) {
                foreach ($cates as $k=>$v) {
                    $arr[$v['id']] = $v['catename'];
                }
            }
            $this->assign("lists", array(
                "category" => $arr,
            ));
            $this->display();
        }
    }

    // 编辑资料
    public function edit()
    {
        if (IS_POST) {
            // ID
            $id = I("post.id");
			
			// 没有ID
			if(empty($id)){
				$this->ajaxError("错误！");
			}

            // 判断是否存在
            $dbData = M('product')
                ->where(array("id", $id))
                ->find();

            //判断用户是否存在
            if (empty($dbData)) {
				$this->ajaxError("数据不存在！");
            }

            // 更新数据
            $data = array();

            // 名称
            $data['name'] = I('post.name');

            //商城分类
            $data['categoryId'] = I('post.categoryid');

            // 简介
            $data['introduce'] = I('post.introduce');

            // 缩略图
            $data['img'] = I('post.img');

            // 图集
            $data['imgs'] = I('post.imgs_str');
            if (empty($data['imgs'])) {
                $data['imgs'] = implode(",",I('post.imgs'));
            }

            // 详情页
            $data['html'] = $_POST["html"];

            // 价格
            $data['price'] = I('post.price');
            if (0 >= $data['price']) $this->ajaxError("价格不能小于等于0！");

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新数据
            $result = M('product')
                ->where(array("id" => $id))
                ->save($data);

            if ($result !== false) {
                // 重新加载首页商品
                loadIndexProduct();

				$this->ajaxSuccess("更新成功！");
            } else {
				$this->ajaxError("更新失败！");
            }
        } else {
            // ID
            $id = intval(I("get.id"));

            // 判断是否存在
            $data = M('product')
                ->alias("t")
                ->field("t.*")
                ->where(array("t.id" => $id))
                ->find();

            // 判断是否存在
            if (empty($data)) {
                $this->error("数据不存在");
            }

            //取出分类
            $cates = M('category')->field("id,catename")->select();
            $arr = array();
            if (!empty($cates)) {
                foreach ($cates as $k=>$v) {
                    $arr[$v['id']] = $v['catename'];
                }
            }
            $this->assign("lists", array(
                "category" => $arr,
            ));

            $data['imgs_str'] = $data['imgs'];
            $data['imgs'] = explode(',',$data['imgs']);
            $this->assign("data", $data);
            $this->display();
        }
    }

    // 编辑分润
    public function editBonus()
    {
        if (IS_POST) {
            // ID
            $id = I("post.id");

            // 没有ID
            if(empty($id)){
                $this->ajaxError("错误！");
            }

            // 判断是否存在
            $dbData = M('product')
                ->where(array("id", $id))
                ->find();

            //判断用户是否存在
            if (empty($dbData)) {
                $this->ajaxError("数据不存在！");
            }

            // 更新数据
            $data = array();

            // 分销奖金
            $data['bonus'] = I('post.bonus');

            // 分销奖金2
            $data['bonus2'] = I('post.bonus2');

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新人
            $data['updateId'] = $this->getAccountId();

            // 更新数据
            $result = M('product')
                ->where(array("id" => $id))
                ->save($data);

            if ($result !== false) {
                $this->ajaxSuccess("更新成功！");
            } else {
                $this->ajaxError("更新失败！");
            }
        } else {
            // ID
            $id = intval(I("get.id"));

            // 判断是否存在
            $data = M('product')
                ->alias("t")
                ->field("t.id,t.bonus,t.bonus2")
                ->where(array("t.id" => $id))
                ->find();

            // 判断是否存在
            if (empty($data)) {
                $this->error("数据不存在");
            }

            $this->assign("data", $data);
            $this->display();
        }
    }

    // 编辑代理价格
    public function editPrice()
    {
        if (IS_POST) {
            // ID
            $id = I("post.id");

            // 没有ID
            if(empty($id)){
                $this->ajaxError("错误！");
            }

            // 判断是否存在
            $dbData = M('product')
                ->where(array("id", $id))
                ->find();

            //判断用户是否存在
            if (empty($dbData)) {
                $this->ajaxError("数据不存在！");
            }

            // 更新数据
            $data = array();

            // 价格1
            $data['price1'] = I('post.price1');

            // 价格2
            $data['price2'] = I('post.price2');

            // 价格3
            $data['price3'] = I('post.price3');

            // 价格4
            $data['price4'] = I('post.price4');

            // 价格5
            $data['price5'] = I('post.price5');

            // 价格6
            $data['price6'] = I('post.price6');

            // 价格7
            $data['price7'] = I('post.price7');

            // 价格8
            $data['price8'] = I('post.price8');

            // 价格9
            $data['price9'] = I('post.price9');

            // 价格10
            $data['price10'] = I('post.price10');

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新人
            $data['updateId'] = $this->getAccountId();

            // 更新数据
            $result = M('product')
                ->where(array("id" => $id))
                ->save($data);

            if ($result !== false) {
                $this->ajaxSuccess("更新成功！");
            } else {
                $this->ajaxError("更新失败！");
            }
        } else {
            // ID
            $id = intval(I("get.id"));

            // 判断是否存在
            $data = M('product')
                ->alias("t")
                ->field("t.id,t.price1,t.price2,t.price3,t.price4,t.price5,t.price6,t.price7,t.price8,t.price9,t.price10")
                ->where(array("t.id" => $id))
                ->find();

            // 判断是否存在
            if (empty($data)) {
                $this->error("数据不存在");
            }

            // 查找代理等级
            $agenLevel = M('agenlevel')
                ->alias("t")
                ->field("t.level,t.name")
                ->select();

            $this->assign("level", $agenLevel);
            $this->assign("data", $data);
            $this->display();
        }
    }

    // 删除
    public function delete()
    {
        if (IS_POST) {
            // ID
            $id = intval(I("post.id"));
			
			// 没有ID
			if(empty($id)){
				$this->ajaxError("错误！");
			}

            // 删除flag
            $data['isDelete'] = "1";

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新人
            $data['updateId'] = $this->getAccountId();

            // 更新数据
            $result = M('product')->where(array("id" => $id))->save($data);

            // 如果成功
            if ($result) {
                // 重新加载首页商品
                loadIndexProduct();

				$this->ajaxSuccess("删除成功！");
            } else {
				$this->ajaxError("删除失败！");
            }
        }
    }

    // 上架
    public function up()
    {
        if (IS_POST) {
            // ID
            $id = intval(I("post.id"));

            // 没有ID
            if(empty($id)){
                $this->ajaxError("错误！");
            }

            // flag
            $data['isUp'] = "1";

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新人
            $data['updateId'] = $this->getAccountId();

            // 更新数据
            $result = M('product')->where(array("id" => $id))->save($data);

            // 如果成功
            if ($result) {
                // 重新加载首页商品
                loadIndexProduct();

                $this->ajaxSuccess("上架成功！");
            } else {
                $this->ajaxError("上架失败！");
            }
        }
    }

    // 下架
    public function down()
    {
        if (IS_POST) {
            // ID
            $id = intval(I("post.id"));

            // 没有ID
            if(empty($id)){
                $this->ajaxError("错误！");
            }
            // flag
            $data['isUp'] = "2";

            // 更新时间
            $data['updateTime'] = now_datetime();

            // 更新人
            $data['updateId'] = $this->getAccountId();

            // 更新数据
            $result = M('product')->where(array("id" => $id))->save($data);

            // 如果成功
            if ($result) {
                // 重新加载首页商品
                loadIndexProduct();
                
                $this->ajaxSuccess("下架成功！");
            } else {
                $this->ajaxError("下架失败！");
            }
        }
    }
}